#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
#define ERROR_CHECK(ret, num, msg) \
    {                              \
        if (ret == num)            \
        {                          \
            perror(msg);           \
            exit(1);               \
        }                          \
    }
int main(int argc, char *argv[])
{
    __pid_t pid1 = fork();
    __pid_t pid2 = fork();
    __pid_t pid3 = fork();
    __pid_t pid4 = fork();
    __pid_t pid5 = fork();
    __pid_t pid6 = fork();
    __pid_t pid7 = fork();
    __pid_t pid8 = fork();
    __pid_t pid9 = fork();
    __pid_t pid10 = fork();
    if (pid1 == 0)
    {
        printf("我是子进程 pid1 = %d, ppid = %d\n", getpid(), getppid());
        while (1)
        {
            /* code */
        }
    }
    else if (pid2 == 0)
    {
        printf("我是子进程 pid2 = %d, ppid = %d\n", getpid(), getppid());
        while (1)
        {
            /* code */
        }
    }
    if (pid3 == 0)
    {
        printf("我是子进程 pid3 = %d, ppid = %d\n", getpid(), getppid());
        while (1)
        {
            /* code */
        }
    }
    else if (pid4 == 0)
    {
        printf("我是子进程 pid4 = %d, ppid = %d\n", getpid(), getppid());
        while (1)
        {
            /* code */
        }
    }
    if (pid5 == 0)
    {
        printf("我是子进程 pid5 = %d, ppid = %d\n", getpid(), getppid());
        while (1)
        {
            /* code */
        }
    }
    else if (pid6 == 0)
    {
        printf("我是子进程 pid6 = %d, ppid = %d\n", getpid(), getppid());
        while (1)
        {
            /* code */
        }
    }
    if (pid7 == 0)
    {
        printf("我是子进程 pid7 = %d, ppid = %d\n", getpid(), getppid());
        while (1)
        {
            /* code */
        }
    }
    else if (pid8 == 0)
    {
        printf("我是子进程 pid8 = %d, ppid = %d\n", getpid(), getppid());
        while (1)
        {
            /* code */
        }
    }
    else if (pid9 == 0)
    {
        printf("我是子进程 pid9 = %d, ppid = %d\n", getpid(), getppid());
        while (1)
        {
            /* code */
        }
    }
    else if (pid10 == 0)
    {
        printf("我是子进程 pid10 = %d, ppid = %d\n", getpid(), getppid());
        while (1)
        {
            /* code */
        }
    }
    else
    {
        printf("我是父进程 pid = %d, ppid = %d\n", getpid(), getppid());

        while (1)
        {
            /* code */
        }
    }

    return 0;
}
